package com.ljx.GuPiao;

/**
 * @author 李加喜
 * @Package com.ljx.GuPiao
 * @date 2021-11-11 21:00
 */
// 总共最多交易两次
public class GoodGuPiaoLiang {
    public static void main(String[] args) {

    }
    public int maxProfit(int[] prices) {
        int maxK=2;
        int n=prices.length;
        int[][][] dp=new int[n][maxK+1][2];
        for (int i=0;i<n;i++){
            for (int k=maxK;k>=1;k--){
                if (i-1==-1){
                    // 处理 base case
                    dp[i][k][0] = 0;
                    dp[i][k][1] = -prices[i];
                    continue;
                }
                dp[i][k][0]=Math.max(dp[i-1][k][0],dp[i-1][k][1]+prices[i]);
                // 这一次交易了  购买了
                dp[i][k][1]=Math.max(dp[i-1][k][1],dp[i-1][k-1][0]-prices[i]);
            }
        }
        return dp[n-1][maxK][0];
    }
}
